{{#additionalPropertiesType}}
  /**
   * A container for additional, undeclared properties.
   * This is a holder for any undeclared properties as specified with
   * the 'additionalProperties' keyword in the OAS document.
   */
  private Map<String, {{{.}}}> additionalProperties;

  /**
   * Set the additional (undeclared) property with the specified name and value.
   * If the property does not already exist, create it otherwise replace it.
   * @param key the name of the property
   * @param value the value of the property
   * @return self reference
   */
  @com.fasterxml.jackson.annotation.JsonAnySetter
  public {{classname}} putAdditionalProperty(String key, {{{.}}} value) {
    if (this.additionalProperties == null) {
        this.additionalProperties = new HashMap<String, {{{.}}}>();
    }
    this.additionalProperties.put(key, value);
    return this;
  }

  /**
   * Return the additional (undeclared) properties.
   * @return the additional (undeclared) properties
   */
  @com.fasterxml.jackson.annotation.JsonAnyGetter
  public Map<String, {{{.}}}> getAdditionalProperties() {
    return additionalProperties;
  }

  /**
   * Return the additional (undeclared) property with the specified name.
   * @param key the name of the property
   * @return the additional (undeclared) property with the specified name
   */
  public {{{.}}} getAdditionalProperty(String key) {
    if (this.additionalProperties == null) {
        return null;
    }
    return this.additionalProperties.get(key);
  }
{{/additionalPropertiesType}}